package pers.wensheng.patterns.behavioral_pattern.iterator_pattern.my_impl.entity;

import pers.wensheng.patterns.behavioral_pattern.iterator_pattern.my_impl.Student;

import java.util.List;

/**
 * 迭代器实现类
 * 具体迭代器角色类
 */
public class StudentIteratorImpl implements StudentIterator {
    /**
     * 学生集合
     */

    private List<Student> list ;

    /**
     * 位置变量
     */
    private int position = 0 ;

    public StudentIteratorImpl(List<Student> list) {
        this.list = list;
    }

    /**
     * 判断是否还有元素，记录遍历时的位置
     */
    @Override
    public boolean hasNext() {
        return position < list.size();
    }

    /**
     * 获取下一个元素
     */
    @Override
    public Student next() {
        //从集合中获取指定位置的元素
        Student currentStudent = list.get(position);
        position++;
        return currentStudent;
    }
}
